In many situations, it is desirable to allow clients to login to a computer system on which they have no account, i.e. login "anonymously," in order to achieve a desired objective. For example, a client downloading a file from a remote computer over the Internet will often anonymously login as "guest." The anonymous "guest" account allows the client to access a file and download it, even though the client does not have an account on the target computer system, but generally gives the client very little additional permissions. For example, a client logged in as "guest" usually cannot to add files to the systems, edit files present on the system, affect the execution of programs on the system or, in many cases, begin execution of an application.
It can be useful, however, to allow a client to anonymously login to a computer in order to execute an application. For example, a software company could allow clients to anonymously login to a computer in order to run a demo version of an application so that the users can evaluate the suitability of the application. Other uses include remote access to servers in which the server hosts an application required by the remote client.
Some operating systems do not provide "guest" account access at all, which restricts users of the system to those users having an account. Other operating systems provide for multiple "guest" accounts, but all the "guest" users share the same execution environment. Shared execution environments prohibit simultaneous execution of all but the most rudimentary programs. Because most programs set up scratch directories, data directories, and home directories, each guest user needs a separate work environment including at least a home directory, a temporary directory, a data directory, and a security context. Current operating systems do not provide "guests" with separate execution environments.